/*
 * Copyright (c) 2012 Travis Geiselbrecht
 *
 * Use of this source code is governed by a MIT-style
 * license that can be found in the LICENSE file or at
 * https://opensource.org/licenses/MIT
 */
#include <lk/debug.h>
#include <lk/compiler.h>
#include <hc32_ddl.h>
#include <hc32f46x.h>
#include <arch/arm/cm.h>
#include <platform/hc32.h>
#include <target/debugconfig.h>
#include <lib/cbuf.h>

/* un-overridden irq handler */
void hc32_dummy_irq(void) {
    arm_cm_irq_entry();

    panic("unhandled irq\n");
}

/* a list of default handlers that are simply aliases to the dummy handler */
#define DEFAULT_HANDLER(x) \
void x##_Handler(void) __WEAK_ALIAS("hc32_dummy_irq");

DEFAULT_HANDLER(IRQ000);
DEFAULT_HANDLER(IRQ001);
DEFAULT_HANDLER(IRQ002);
DEFAULT_HANDLER(IRQ003);
DEFAULT_HANDLER(IRQ004);
DEFAULT_HANDLER(IRQ005);
DEFAULT_HANDLER(IRQ006);
DEFAULT_HANDLER(IRQ007);
DEFAULT_HANDLER(IRQ008);
DEFAULT_HANDLER(IRQ009);
DEFAULT_HANDLER(IRQ010);

DEFAULT_HANDLER(IRQ011);
DEFAULT_HANDLER(IRQ012);
DEFAULT_HANDLER(IRQ013);
DEFAULT_HANDLER(IRQ014);
DEFAULT_HANDLER(IRQ015);
DEFAULT_HANDLER(IRQ016);
DEFAULT_HANDLER(IRQ017);
DEFAULT_HANDLER(IRQ018);
DEFAULT_HANDLER(IRQ019);
DEFAULT_HANDLER(IRQ020);

DEFAULT_HANDLER(IRQ021);
DEFAULT_HANDLER(IRQ022);
DEFAULT_HANDLER(IRQ023);
DEFAULT_HANDLER(IRQ024);
DEFAULT_HANDLER(IRQ025);
DEFAULT_HANDLER(IRQ026);
DEFAULT_HANDLER(IRQ027);
DEFAULT_HANDLER(IRQ028);
DEFAULT_HANDLER(IRQ029);
DEFAULT_HANDLER(IRQ030);

DEFAULT_HANDLER(IRQ031);
DEFAULT_HANDLER(IRQ032);
DEFAULT_HANDLER(IRQ033);
DEFAULT_HANDLER(IRQ034);
DEFAULT_HANDLER(IRQ035);
DEFAULT_HANDLER(IRQ036);
DEFAULT_HANDLER(IRQ037);
DEFAULT_HANDLER(IRQ038);
DEFAULT_HANDLER(IRQ039);
DEFAULT_HANDLER(IRQ040);

DEFAULT_HANDLER(IRQ041);
DEFAULT_HANDLER(IRQ042);
DEFAULT_HANDLER(IRQ043);
DEFAULT_HANDLER(IRQ044);
DEFAULT_HANDLER(IRQ045);
DEFAULT_HANDLER(IRQ046);
DEFAULT_HANDLER(IRQ047);
DEFAULT_HANDLER(IRQ048);
DEFAULT_HANDLER(IRQ049);
DEFAULT_HANDLER(IRQ050);

DEFAULT_HANDLER(IRQ051);
DEFAULT_HANDLER(IRQ052);
DEFAULT_HANDLER(IRQ053);
DEFAULT_HANDLER(IRQ054);
DEFAULT_HANDLER(IRQ055);
DEFAULT_HANDLER(IRQ056);
DEFAULT_HANDLER(IRQ057);
DEFAULT_HANDLER(IRQ058);
DEFAULT_HANDLER(IRQ059);
DEFAULT_HANDLER(IRQ060);

DEFAULT_HANDLER(IRQ061);
DEFAULT_HANDLER(IRQ062);
DEFAULT_HANDLER(IRQ063);
DEFAULT_HANDLER(IRQ064);
DEFAULT_HANDLER(IRQ065);
DEFAULT_HANDLER(IRQ066);
DEFAULT_HANDLER(IRQ067);
DEFAULT_HANDLER(IRQ068);
DEFAULT_HANDLER(IRQ069);
DEFAULT_HANDLER(IRQ070);

DEFAULT_HANDLER(IRQ071);
DEFAULT_HANDLER(IRQ072);
DEFAULT_HANDLER(IRQ073);
DEFAULT_HANDLER(IRQ074);
DEFAULT_HANDLER(IRQ075);
DEFAULT_HANDLER(IRQ076);
DEFAULT_HANDLER(IRQ077);
DEFAULT_HANDLER(IRQ078);
DEFAULT_HANDLER(IRQ079);
DEFAULT_HANDLER(IRQ080);

DEFAULT_HANDLER(IRQ081);
DEFAULT_HANDLER(IRQ082);
DEFAULT_HANDLER(IRQ083);
DEFAULT_HANDLER(IRQ084);
DEFAULT_HANDLER(IRQ085);
DEFAULT_HANDLER(IRQ086);
DEFAULT_HANDLER(IRQ087);
DEFAULT_HANDLER(IRQ088);
DEFAULT_HANDLER(IRQ089);
DEFAULT_HANDLER(IRQ090);

DEFAULT_HANDLER(IRQ091);
DEFAULT_HANDLER(IRQ092);
DEFAULT_HANDLER(IRQ093);
DEFAULT_HANDLER(IRQ094);
DEFAULT_HANDLER(IRQ095);
DEFAULT_HANDLER(IRQ096);
DEFAULT_HANDLER(IRQ097);
DEFAULT_HANDLER(IRQ098);
DEFAULT_HANDLER(IRQ099);
DEFAULT_HANDLER(IRQ100);

DEFAULT_HANDLER(IRQ101);
DEFAULT_HANDLER(IRQ102);
DEFAULT_HANDLER(IRQ103);
DEFAULT_HANDLER(IRQ104);
DEFAULT_HANDLER(IRQ105);
DEFAULT_HANDLER(IRQ106);
DEFAULT_HANDLER(IRQ107);
DEFAULT_HANDLER(IRQ108);
DEFAULT_HANDLER(IRQ109);
DEFAULT_HANDLER(IRQ110);

DEFAULT_HANDLER(IRQ111);
DEFAULT_HANDLER(IRQ112);
DEFAULT_HANDLER(IRQ113);
DEFAULT_HANDLER(IRQ114);
DEFAULT_HANDLER(IRQ115);
DEFAULT_HANDLER(IRQ116);
DEFAULT_HANDLER(IRQ117);
DEFAULT_HANDLER(IRQ118);
DEFAULT_HANDLER(IRQ119);
DEFAULT_HANDLER(IRQ120);

DEFAULT_HANDLER(IRQ121);
DEFAULT_HANDLER(IRQ122);
DEFAULT_HANDLER(IRQ123);
DEFAULT_HANDLER(IRQ124);
DEFAULT_HANDLER(IRQ125);
DEFAULT_HANDLER(IRQ126);
DEFAULT_HANDLER(IRQ127);
DEFAULT_HANDLER(IRQ128);
DEFAULT_HANDLER(IRQ129);
DEFAULT_HANDLER(IRQ130);

DEFAULT_HANDLER(IRQ131);
DEFAULT_HANDLER(IRQ132);
DEFAULT_HANDLER(IRQ133);
DEFAULT_HANDLER(IRQ134);
DEFAULT_HANDLER(IRQ135);
DEFAULT_HANDLER(IRQ136);
DEFAULT_HANDLER(IRQ137);
DEFAULT_HANDLER(IRQ138);
DEFAULT_HANDLER(IRQ139);
DEFAULT_HANDLER(IRQ140);

DEFAULT_HANDLER(IRQ141);
DEFAULT_HANDLER(IRQ142);
DEFAULT_HANDLER(IRQ143);


#define VECTAB_ENTRY(x, y) [x##_IRQn] = y##_Handler

/* appended to the end of the main vector table */
const void *const __SECTION(".text.boot.vectab2") vectab2[] = {
    VECTAB_ENTRY(Int000, IRQ000),                 /* Int No.000 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int001, IRQ001),                 /* Int No.001 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int002, IRQ002),                 /* Int No.002 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int003, IRQ003),                 /* Int No.003 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int004, IRQ004),                 /* Int No.004 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int005, IRQ005),                 /* Int No.005 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int006, IRQ006),                 /* Int No.006 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int007, IRQ007),                 /* Int No.007 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int008, IRQ008),                 /* Int No.008 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int009, IRQ009),                 /* Int No.009 IRQ  Interrupt                                         */  

    VECTAB_ENTRY(Int010, IRQ010),                 /* Int No.010 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int011, IRQ011),                 /* Int No.011 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int012, IRQ012),                 /* Int No.012 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int013, IRQ013),                 /* Int No.013 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int014, IRQ014),                 /* Int No.014 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int015, IRQ015),                 /* Int No.015 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int016, IRQ016),                 /* Int No.016 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int017, IRQ017),                 /* Int No.017 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int018, IRQ018),                 /* Int No.018 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int019, IRQ019),                 /* Int No.019 IRQ  Interrupt                                         */ 

    VECTAB_ENTRY(Int020, IRQ020),                 /* Int No.020 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int021, IRQ021),                 /* Int No.021 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int022, IRQ022),                 /* Int No.022 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int023, IRQ023),                 /* Int No.023 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int024, IRQ024),                 /* Int No.024 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int025, IRQ025),                 /* Int No.025 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int026, IRQ026),                 /* Int No.026 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int027, IRQ027),                 /* Int No.027 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int028, IRQ028),                 /* Int No.028 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int029, IRQ029),                 /* Int No.029 IRQ  Interrupt                                         */ 

    VECTAB_ENTRY(Int030, IRQ030),                 /* Int No.030 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int031, IRQ031),                 /* Int No.031 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int032, IRQ032),                 /* Int No.032 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int033, IRQ033),                 /* Int No.033 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int034, IRQ034),                 /* Int No.034 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int035, IRQ035),                 /* Int No.035 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int036, IRQ036),                 /* Int No.036 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int037, IRQ037),                 /* Int No.037 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int038, IRQ038),                 /* Int No.038 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int039, IRQ039),                 /* Int No.039 IRQ  Interrupt                                         */ 

    VECTAB_ENTRY(Int040, IRQ040),                 /* Int No.040 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int041, IRQ041),                 /* Int No.041 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int042, IRQ042),                 /* Int No.042 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int043, IRQ043),                 /* Int No.043 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int044, IRQ044),                 /* Int No.044 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int045, IRQ045),                 /* Int No.045 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int046, IRQ046),                 /* Int No.046 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int047, IRQ047),                 /* Int No.047 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int048, IRQ048),                 /* Int No.048 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int049, IRQ049),                 /* Int No.049 IRQ  Interrupt                                         */ 

    VECTAB_ENTRY(Int050, IRQ050),                 /* Int No.050 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int051, IRQ051),                 /* Int No.051 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int052, IRQ052),                 /* Int No.052 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int053, IRQ053),                 /* Int No.053 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int054, IRQ054),                 /* Int No.054 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int055, IRQ055),                 /* Int No.055 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int056, IRQ056),                 /* Int No.056 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int057, IRQ057),                 /* Int No.057 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int058, IRQ058),                 /* Int No.058 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int059, IRQ059),                 /* Int No.059 IRQ  Interrupt                                         */ 

    VECTAB_ENTRY(Int060, IRQ060),                 /* Int No.060 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int061, IRQ061),                 /* Int No.061 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int062, IRQ062),                 /* Int No.062 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int063, IRQ063),                 /* Int No.063 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int064, IRQ064),                 /* Int No.064 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int065, IRQ065),                 /* Int No.065 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int066, IRQ066),                 /* Int No.066 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int067, IRQ067),                 /* Int No.067 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int068, IRQ068),                 /* Int No.068 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int069, IRQ069),                 /* Int No.069 IRQ  Interrupt                                         */ 	

    VECTAB_ENTRY(Int070, IRQ070),                 /* Int No.070 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int071, IRQ071),                 /* Int No.071 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int072, IRQ072),                 /* Int No.072 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int073, IRQ073),                 /* Int No.073 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int074, IRQ074),                 /* Int No.074 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int075, IRQ075),                 /* Int No.075 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int076, IRQ076),                 /* Int No.076 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int077, IRQ077),                 /* Int No.077 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int078, IRQ078),                 /* Int No.078 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int079, IRQ079),                 /* Int No.079 IRQ  Interrupt                                         */ 	

    VECTAB_ENTRY(Int080, IRQ080),                 /* Int No.080 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int081, IRQ081),                 /* Int No.081 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int082, IRQ082),                 /* Int No.082 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int083, IRQ083),                 /* Int No.083 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int084, IRQ084),                 /* Int No.084 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int085, IRQ085),                 /* Int No.085 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int086, IRQ086),                 /* Int No.086 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int087, IRQ087),                 /* Int No.087 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int088, IRQ088),                 /* Int No.088 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int089, IRQ089),                 /* Int No.089 IRQ  Interrupt                                         */ 	

    VECTAB_ENTRY(Int090, IRQ090),                 /* Int No.090 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int091, IRQ091),                 /* Int No.091 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int092, IRQ092),                 /* Int No.092 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int093, IRQ093),                 /* Int No.093 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int094, IRQ094),                 /* Int No.094 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int095, IRQ095),                 /* Int No.095 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int096, IRQ096),                 /* Int No.096 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int097, IRQ097),                 /* Int No.097 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int098, IRQ098),                 /* Int No.098 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int099, IRQ099),                 /* Int No.099 IRQ  Interrupt                                         */ 	

    VECTAB_ENTRY(Int100, IRQ100),                 /* Int No.100 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int101, IRQ101),                 /* Int No.101 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int102, IRQ102),                 /* Int No.102 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int103, IRQ103),                 /* Int No.103 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int104, IRQ104),                 /* Int No.104 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int105, IRQ105),                 /* Int No.105 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int106, IRQ106),                 /* Int No.106 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int107, IRQ107),                 /* Int No.107 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int108, IRQ108),                 /* Int No.108 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int109, IRQ109),                 /* Int No.109 IRQ  Interrupt                                         */ 	

    VECTAB_ENTRY(Int110, IRQ110),                 /* Int No.110 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int111, IRQ111),                 /* Int No.111 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int112, IRQ112),                 /* Int No.112 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int113, IRQ113),                 /* Int No.113 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int114, IRQ114),                 /* Int No.114 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int115, IRQ115),                 /* Int No.115 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int116, IRQ116),                 /* Int No.116 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int117, IRQ117),                 /* Int No.117 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int118, IRQ118),                 /* Int No.118 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int119, IRQ119),                 /* Int No.119 IRQ  Interrupt                                         */ 

    VECTAB_ENTRY(Int120, IRQ120),                 /* Int No.120 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int121, IRQ121),                 /* Int No.121 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int122, IRQ122),                 /* Int No.122 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int123, IRQ123),                 /* Int No.123 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int124, IRQ124),                 /* Int No.124 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int125, IRQ125),                 /* Int No.125 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int126, IRQ126),                 /* Int No.126 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int127, IRQ127),                 /* Int No.127 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int128, IRQ128),                 /* Int No.128 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int129, IRQ129),                 /* Int No.129 IRQ  Interrupt                                         */ 

    VECTAB_ENTRY(Int130, IRQ130),                 /* Int No.130 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int131, IRQ131),                 /* Int No.131 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int132, IRQ132),                 /* Int No.132 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int133, IRQ133),                 /* Int No.133 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int134, IRQ134),                 /* Int No.134 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int135, IRQ135),                 /* Int No.135 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int136, IRQ136),                 /* Int No.136 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int137, IRQ137),                 /* Int No.137 IRQ  Interrupt                                         */  
    VECTAB_ENTRY(Int138, IRQ138),                 /* Int No.138 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int139, IRQ139),                 /* Int No.139 IRQ  Interrupt                                         */ 

    VECTAB_ENTRY(Int140, IRQ140),                 /* Int No.140 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int141, IRQ141),                 /* Int No.141 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int142, IRQ142),                 /* Int No.142 IRQ  Interrupt                                         */
    VECTAB_ENTRY(Int143, IRQ143),                 /* Int No.143 IRQ  Interrupt                                         */  
	
};



